home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
edit
/
aaem95ma.zip
/
README
< prev
next >
Wrap
INI File
|
1995-03-06
|
30KB
|
462 lines
[This file is README]
This is the 5 Mar 1995 version of the PC screen text editor AAEMACS written by
A.Appleyard, E28d, Materials Science, UMIST, Manchester 1, England (email:
A.APPLEYARD@FS2.MT.UMIST.AC.UK) as .EXE binary and for compiling by Gnu C++, so
needs an 80386-based IBM compatible PC, and will not run under Windows. It needs
real mode, not V86 mode. For information on Gnu C++ (alias djgpp), contact
Mr.Delorie (DJ@DELORIE.MV.COM). The files EMACS.EXE and FINDMODE.EXE each
include a copy of the Gnu C++ loader BIN\GO32.EXE, so matter including these
.EXE files should not change hands in exchange for money, only free.
-------------------------------------------------------------------------------
Disclaimer: This software is distributed <without any warranty>; without even
the implied warranty of <merchantability> or <fitness for a particular purpose>.
In particular, I am not responsible for the consequences of other people
altering a copy of the source form and then recompiling and running the result.
--------------------------------------------------------------------------------
If you want to try to port AAEMACS to other C++ compilers, I <<<CAN'T>>>
guarantee the results! In particular, be wary wherever I have put a comment
starting with '/****'.
-------------------------------------------------------------------------------
AAEMACS includes these files:-
-- information files:-
MACROS.HLP information file about format of AAEMACS macro files
README this file
WISHLIST things that I may get around to doing
EXAMPLES examples
HISTORY list of past alterations and corrections
-- files needed to run AAEMACS:-
DICT dictionary for spelling checker
EMACS.EXE AAEMACS assembled and ready for running
FINDMODE.CC Gnu C program to find current and possible screen modes
FINDMODE.EXE ditto, compiled
HELP one line of information for each bound key
HELP.BIG longer information for all user subroutines and bound keys
INFO.DAT some information about your PC that AAEMACS needs
-- files needed to compile AAEMACS:-
ASSEMBLE.BAT to link AAEMACS together after compiling its parts
COMPILAL.BAT to compile all parts of AAEMACS (I don't use MAKE)
DISPLAY.CC Emacs source: subroutines to display file on screen
EM.CC Emacs source: lots of little subroutines
EM.H Emacs source: matter #include'd by all parts
KEYF.CC Emacs source: subroutines which are bound to keys
CC.CC Emacs source: more subroutines which are bound to keys
MACROS.CC Emacs source: re macros
MAIN.CC Emacs source: main() and obey()
-------------------------------------------------------------------------------
[To install AAEMACS]
As AAEMACS was compiled by Gnu C, the PC's CPU must be in REAL mode. So, AAEMACS
won't run if e.g. \CONFIG.SYS contains a line 'device=\dos\himem.sys' to reserve
areas of store and reset mode for Windows.
Create a directory to keep AAEMACS on. CHDIR to that directory.
Copy the "files needed to run AAEMACS" onto that directory.
In your \AUTOEXEC.BAT file insert this line ('AAEMACS' must be UPPERCASE):-
SET AAEMACS=C:\AM
(with C:\AM replaced by drive & name of the directory where you put AAEMACS)
Alter your copy of file INFO.DAT according to peculiarities of your PC thus:-
Lines 1 to end: one line for each alt and special key code (i.e. codes that the
interrupt 'AH=7, AL=0, int 21hex' returns first 0 then a value for) that your
keyboard can read. (There is a list below of what these codes return on my PC:
check this list with your own keyboard's specifications in its manual):-
chars 1 to 3: decimal value returned by key
chars 5 to 19: name to refer to key by. (Letters & digits only, letter first)
chars 21 to 24: short code for this key (|=shift, ^=ctrl, *=alt, !=special)
If you want/need to recompile AAEMACS yourself:-
Copy also the "files needed to compile AAEMACS" onto your directory for AAEMACS.
In line 2 of your copy of ASSEMBLE.BAT, replace 'c:\gcc\bin\go32.exe' by the
full filename with drive and directory of your copy of Gnu C's file GO32.EXE .
Type COMPILAL
This creates the object files CC.O DISPLAY.O EM.O KEYF.O MAIN.O MACROS.O
Type ASSEMBLE
This links the object files, creating binary file EMACS.EXE (I don't use MAKE)
-------------------------------------------------------------------------------
[Calling AAEMACS]
(Replace C:\AM\EMACS by whatever is needed to call your copy of EMACS.EXE)
To edit file xxx, type C:\AM\EMACS xxx
If xxx is omitted, AAEMACS shows a menu of all files in the current directory.
If xxx is a directory, AAEMACS shows a menu of all files in that directory.
-------------------------------------------------------------------------------
[Setting up a quick way to call AAEMACS]
On your system macro directory create a file \DOS\EM.BAT containing this line:-
%AAEMACS%\EMACS %1 %2 %3 %4 %5 %6 %7 %8
(And set AAEMACS in your AUTOEXEC.BAT as above.) Then:-
Typing EM will enter AAEMACS with menu of files in current directory.
Typing EM xxx will enter AAEMACS to edit the file xxx.
-------------------------------------------------------------------------------
(Typing a printable key by itself always inserts or overlays that character.)
Short information about each keybinding is in file HELP .
Full information about each subroutine and keybinding is in file HELP.BIG .
Typing ctrl-_ gets help according to what key you type next:-
? this information
a all lines in file HELP which contain a specified string
d help about use of special keys in directory menus
i help about use of special keys in incremental search
L explanation of symbols used in help information
l long help about any one subroutine
m help about magic characters
o help about allowed operator uses in macros
r help about the replace commands
s help about use of alt- and special keys when inputting a string argument
(Any other keysequence gets one-line help about that keysequence)
One-line help output overwrites the mode line. The next keystroke is treated as
a normal AAEMACS command and also refreshes the mode line.
Other help output overwrites the screen display. Afterwards: ctrl-_ gets more
help, any other character merely exits from 'help'
-------------------------------------------------------------------------------
Effect of alt- and special keys in incremental search:-
insert look again for this same string
delete cancel effect of typing last displayed character
altend abort search
pagedown exit from search
altret look for CR stored as byte (not as bit) in AAEMACS's line image
ret or ctrl-J or ctrl-M look for end-of-line
(NB. The incremental search string can't be > 64 chars long)
-------------------------------------------------------------------------------
Effect of replies to 'shall I replace here?' in replace:-
space yes and look for the next replacing
N or n no and look for the next replacing
. yes and exit
altend no and exit
end no and exit and leave the cursor here
-------------------------------------------------------------------------------
Special keys as used when inputting string arguments:-
printing & control chars & space & newline go into the string argument
alt-B then keysequence bound to buffer, inserts that buffer's name
alt-C inserts the current buffer's name
alt-K then keysequence: inserts that keysequence's name
alt-R in 2nd arg of replace commands, insert 1st arg just entered
alt-Y insert last kill
delete delete this character (at end of string, previous character)
alt_delete delete previous character
left-arrow go left one character
right-arrow go right one character
home go to start of string
end go to end of string. If first keystroke, do not lose old string
alt_end abort the command that asked for this string argument
ctrl_tab menu to input a character
F1 change char from normal (cyan) to magic (yellow) or vice-versa
F2 ditto but previous character (usually the character just typed)
F3 start or stop typing chars as magic
pagedown accept string as it is
alt_ret put a ctrl-M (CR) (carriage-return) into the string as a byte
ret or ctrlJ or ctrlM put a ctrl-J (LF) (end-of-line) into the string
-------------------------------------------------------------------------------
Effect of alt- and special keys in directory-menus:-
up-arrow move pointer up one entry in menu
down-arrow move pointer down one entry in menu
pageup move pointer up a screenful in menu
pagedown move pointer down a screenful in menu
insert choose new file (you will be asked for its name)
ctrlinsert create new directory (you will be asked for its name)
delete delete this PC file or directory (if directory, must be empty)
home go to parent directory
alt-K copy this directory to kill ring (with alt-O & with ctrl-X ctrl-F)
alt-R rename file (not buffer)
alt-del drop this file's buffer, if it has one
ctrl-N sort by name
ctrl-S sort by size
ctrl-D sort by date
ctrl-X don't sort
altend abort
return choose this file or left mouse button
F1 get submenu of these commands or right mouse button
-------------------------------------------------------------------------------
Effect of magic characters (which show as bright yellow) in searching:-
. any one character except LF
, any one letter or number or _
space one or more spaces and/or tabs (Note how magic space is shown)
tab one or more spaces and/or tabs and/or LF's
| separates alternatives
[ ] start & end of a set of alternatives
# any one character not a letter or number or '_'
\ beginning or end of file
/ LF or beginning or end of file
{ } set start & end of 'string found' (default = all matched chars)
lowercase letter uppercase or lowercase of that letter
= the rest of the current line (not any LF at its end)
Magic search is quicker if the first character in the search string is not magic
-------------------------------------------------------------------------------
Note: When AAEMACS writes a buffer to an existing file, it overwrites the file
at once. It does not 'create a new file, then delete the old file'. Therefore:-
(a) IMPORTANT: Breaking in (e.g. by typing ctrl-C) during writing a file loses
both old and new forms of the file. Always keep backup copies of files!
(b) Unlike in some emacses, there does not have to be enough spare disk space
for the old and new forms of the file to exist at the same time. But if the
new version is longer than the old version and thus overfills the disk, you
have lost the old version and not got all the new version. Keep backups!
(c) The file's directory's entries stay in the same order.
(d) AAEMACS does not automatically save old versions of files.
But you should separately keep your own security copies of files anyway,
in case your computer goes wrong or gets a virus or whatever.
AAEMACS uses colours thus:-
white ordinary buffer display
red mostly for fault remarks
magenta background matter just yanked or moved; matter just found by search
cyan information; matter being input that a subroutine wanted
yellow magic chars in matter being input that a subr wanted
orange, yellow menus etc that overlay the screen display
red arrowheads (in fold-long-lines mode) here this line is folded
(ascii 17 & 16) (otherwise) here this line goes off the screen
When replying (in cyan) to a subroutine question:-
At the start the reply buffer contains whatever was in it before (perhaps with
trailing spaces: beware: typing 'end' key will show where any trailing spaces
finish); and this matter becomes the reply if the reply is terminated at once.
The reply buffer is emptied when the first key is pressed as part of the current
reply, unless that key is 'end'. Magic characters show as bright yellow.
If a filename is wanted, inputting an empty reply gets a menu of the buffers
(when in that menu, the delete key removes an unwanted buffer (not its file)),
and inputting an '=' by itself means "the buffer that the cursor is in".
For more information, type ctrl-_ then 's' in AAEMACS
Attempt to access a directory as if it was a file, gets a menu of all the
files in that directory. In that menu, at the left ends of the lines, 'o' means
that that file has a buffer, and '*' that that file has a buffer which has been
changed since last time it was read or written. It does not show buffers that
have no file of the same name.
-------------------------------------------------------------------------------
[MODES]
The subroutine 'modemenu' (bound to altM) can select between these modes:-
-tab: shown as one char / obeyed (tab positions every 8 chars) / both
-going off end of line: goes to next line / appends spaces to line
-typed char: inserted / overlays, cursor moves / overlays, cursor stays still
-auto newline on typing long text lines?: yes / no
-in search, ignore case of letters?: yes / no
-line too long for screen: show the columns round the cursor / fold long lines
-skip nonword chars after skipping word?: forwards / backwards / neither / both
Each buffer's modes are stored separately.
-------------------------------------------------------------------------------
[CARRIAGE-RETURN AND LINEFEED (CR and LF) (ctrl-M and ctrl-J)]
These complications are because: the usual end-of-line key (RET) returns CR
not LF; PCs store text end-of-line as CR LF; most people want to treat CR LF as
one entity 'end of line' and not to see either shown visibly at each line end.
(But ctrl-RET returns LF.)
Lines are assumed to end in LF or CR LF. This CR and LF are not in AAEMACS's
line images as characters; absence of this CR is shown by setting a bit. On my
PC CR shows as a single music note, and LF as a slab with a circle on. (Double
music note is ctrl-N.) In text on the screen the LF is only shown if the line's
'no CR' bit is set. Else the final CR is shown in these cases:-
if the line ends in space or tab or ascii-0 or ascii-255, to show them;
if the line is empty, to show trailing empty lines;
if the end-of-line is the beginning or end of a coloured section of text;
if the line ends in another CR.
If both CR and LF are displayed, that CR is in AAEMACS as a character and that
line has a 'no CR' bit. This arises from separate CR and LF coming together.
In cyan replies typed to questions asked by keystroke subroutines, end-of-line
is shown as LF, which in ordinary searching matches any end-of-line and ignores
the 'no CR' bit.
'ctrlQ ctrlM' or 'ctrlQ ret' inserts ctrlM (CR) by itself.
'ctrlQ ctrlL' inserts LF without CR (i.e. new line with the 'no CR' bit set).
'alt J' sets the 'CR' bit at all ends-of-lines in the region.
'esc J' clears the 'CR' bit at all ends-of-lines in the region.
AAEMACS displays the end of a file as if there was an extra end-of-line there;
but AAEMACS search commands will not find that extra end-of-line.
AAEMACS does not supply a missing CR or LF at end of file on writing to file.
Note that (at least with PC Gnu C) the C '\n' == 10 (LF) and not 13 (CR).
Search runs quicker if the first character in the search string is LF
-------------------------------------------------------------------------------
[SPELLCHECKER]
AAEMACS has a spelling checker. Its dictionary file is directly readable; I am
not responsible for the results of any attempt at editing it yourself. Words
found during scanning can be written to a space called the appendix, which is
also used for work checking. It is controlled by the subroutines 'checkspelling'
(bound to alt-I), 'getappendix', 'putappendix', 'emptyappendix', which see in
HELP.BIG . Its dictionary is made more compact by noting how to form derivatives
from each root word rather than storing every derivative separately. To merge
'putappendix''s output into an (already sorted) dictionary, use 'mergefile'.
-------------------------------------------------------------------------------
[MOUSE]
AAEMACS uses the mouse, if the PC's mouse driver has already been loaded.
Pressing the mouse buttons, releasing the mouse buttons, and moving the mouse,
are treated logically as 7 extra keyboard special keys. Note:-
(1) Some mouse drivers ignore the middle mouse button.
(2) Some mouse drivers think that the right button of a 2-button mouse is the
middle button.
(3) In all predefined AAEMACS mouse commands the middle button does the same
as the right button.
(4) In AAEMACS a double-click is two clicks: there is no time limit.
(5) Warning: some mouse drivers misbehave in screen text modes other than the
usual 80*25 characters. This fault is in the PC's mouse driver, not in AAEMACS.
If abort-to-DOS occurs in the mouse driver in AAEMACS, it leaves the PC's stack
funny, and you must reboot to clear the condition.
AAEMACS uses the mouse in:-
- As a command in ordinary mode:-
- Right button (or middle button) gets the green menu of commands.
- Left button gets various special commands: see below.
- Combination commands such as `esc rightbutton' are possible.
- Directory menu: left button selects a menu entry; right button gets a cyan
submenu (in it, left button selects, right button backs out) of the main
directory menu's special commands.
Mousing here will only go to the first 2048 entries in each directory.
- Menu of buffers: left button selects; right button asks for a filename which
is not in the list.
- The green menu of commands: left button selects, right button backs out;
left button means the same as Return when it asks for the numeric argument.
- The menu of the 256 PC characters: left button selects, right button exits
without selecting.
- `Literal character' (bound to ctrl-Q): right button gets menu of characters.
- Asking for a file name: any button as first keystroke gets directory menu.
- The menu of buffer modes: left button or Return rotates each line.
- Asking for a string: moving the mouse moves the cursor; if it was wanting a
filename, left button before you type anything gets a menu of filenames.
- In yes/no questions: moves cursor;
left button = whichever alternative the cursor is on, right button = NO.
Clicking the left button in ordinary mode gets into `mousing mode', in which:-
(1) `m' appears at the right end of the info line.
(2) The mouse can only reach the first 2048 characters in each line.
(3) The mouse can't move more than 1024 lines up or down without a key or
button being pressed.
(4) Moving the mouse about moves the cursor.
(5) `esc', or clicking the left button, exits to ordinary mode.
(6) On dragging the left button, releasing it sets that buffer's mark 1 (top
of stack of marks) to where the cursor was when the left button was
pressed, and that buffer's mark 2 to where the cursor is now. From mark 1
to mark 2 is the `mousing region'. Dragging is treated as clicking here if
the left button is released at the same place where it was pressed.
(7) Clicking the right button gets into a small menu where:-
- The mousing region shows magenta.
- `D' deletes the mousing region.
- `M' moves the mousing region to where the cursor is.
- `C' copies the mousing region to where the cursor is.
- `E' exits from the small menu and does nothing.
- Clicking the right button again gets the green menu of commands.
(8) Mouse operations may not be recorded properly by "record a macro".
(9) When moving the mouse, the cursor will not necessarily be exactly at the
mouse if the mouse is off the end of a line, or within spaces used to
represent a tabulate character, or on a red arrowhead showing that a line
is split. All key and button operations put the mouse at the cursor.
-------------------------------------------------------------------------------
[Miscellaneous]
AAEMACS now has a menu of subroutines, called by alt=
Please tell me if you get any red fault remarks starting with "BUG:".
Do <<NOT>> type ctrl-C ahead, as this will cause irretrievable breakin.
Sorry, but this is a feature of Gnu C that I can't do anything about.
AAEMACS can store macros on files (macrofiles). It does not use the mouse yet.
All 256 characters display as that PC character, e.g. ctrl-A as a smileface.
(At least on my PC) ascii-0 and ascii-255 display as space: beware.
(Typing ctrl-Q ctrl-tab gets a menu of all the PC printing characters.)
In the mode line at the bottom of each buffer window: a '*' at the left end
means that that buffer has been altered since it was last written to its file; a
video-reverse (magenta background) block at the right end (only in the current
buffer's window) means that AAEMACS is waiting for you to press a key.
The effect of pressing a key sequence which is bound to a buffer:-
arg>0, or no arg: the current window switches to the key's buffer.
arg=0: a copy of the key's buffer is inserted at the cursor.
arg<0: current window is split between its current buffer and the key's buffer.
Two windows can't display the same buffer.
(This much reduces the thickets of extra programming that bugs can lurk in.)
'Esc letter' is not necessarily treated the same as alt-letter; but an unbound
keysequence with 'esc letter' is treated as the corresponding alt-letter.
Uppercase and lowercase are treated the same when typing a key with alt or
ctrl or after keystrokes such as 'esc' and 'ctrlX' to complete a key sequence.
Kill after kill with nothing between, appends to the same kill ring member.
(But not successive calls of a macro which contains only a kill.)
The kill ring holds 16 members.
Incomplete key sequences show in magenta at the bottom of the current window.
Each buffer's mark stack can hold up to 16 marks.
Mark 999 = where the cursor was before the last command call, so, after acci-
dentally pressing `end', `esc 999 ctrlX ctrlX' goes back where you were before.
The first line and the first character in a line are the 1st, not the 0th.
AAEMACS uses Gnu C's virtual store paging, so it can edit very big files.
ALT with the numbers above QWERTYUIOP input an argument as stated in HELP etc.
ALT with the right keypad numbers send the character (but not ascii-0) whose
ascii value is entered modulo 256 as decimal thus, e.g. ALT-2 ALT-6 is treated
as ctrl-B ctrl-F if ALT is released between the 2 and the 6, else as ctrl-Z.
This is a PC DOS feature and not part of AAEMACS.
A buffer's name is the full form (with drive & directory) of its file's name.
A buffer whose name is not a legal PC filename, has no file.
End of sentence is '.' or '!' or '?' with EOL or space or tab after.
A line empty or starting with space or tab is treated as start of paragraph.
The keystrokes 'esc' and 'ctrl-X' start 2-keystroke sequences.
The subroutines in macrofiles can only take strings and numbers as arguments.
In 'ctrlX =' output, e.g. '17(24)' means 'this line has 17 characters which
are here displayed as 24 characters due to obeying tabs.'.
AAEMACS does not stop reading on finding ctrl-Z in a file that it is reading.
The file is read as binary; then ctrl-J (LF) is treated as end-of-line, and one
final ctrl-M (CR) (if present) in each line is treated specially as above.
The right end character of the mode line of the current window counterchanges
its colors when AAEMACS is waiting for the user to type a character.
The subroutine cccmode goes into or out of a mode where the character at the
cursor is counterchanged, as laptops' cursors are sometimes hard to see.
When inputting a numeric argument with esc or alt and digits:-
Do not use alt with the right keypad digits, for the reason stated hereinabove.
The first 'digit' can be the minus: that specifies negative argument.
esc minus or alt-minus with no digits means -1, not error as with some emacses;
also e.g. 'esc minus 2' or 'alt-minus alt-2' produces -2 correctly even though
a cyan '-1' appears before typing the '2'.
When recording a macro:
Commands that cause failure messages are not recorded.
Incremental search is recorded as ordinary search.
If EMACS.EXE fails with "can't open file c:\gcctemp\----" or similar, call
the DOS command 'MAKEDIR C:\GCCTEMP' (or whatever) and call EMACS.EXE again.
The file EM.INF may be some help in understanding the source form.
In search-and-replace, and in calling a macro N times, ctrl-alt-shift (using
the left shift key) pressed all at once terminates repetition.
FINDMODE.EXE:-
If called with no argument, says what screen modes your computer is in.
If called with no argument, lists what screen modes your computer has (in hex)
If called with a hexadecimal number as argument, sets the screen to that mode
if possible.
-------------------------------------------------------------------------------
[Codes returned by my PC's keyboard for the alt and special keys]
hex dec key hex dec key hex dec key
0x01 1 alt esc 0x03 3 ctrl 2 0x0e 14* alt bksp
0x0f 15 shift tab 0x10 16* alt q 0x11 17* alt w
0x12 18* alt e 0x13 19* alt r 0x14 20* alt t
0x15 21* alt y 0x16 22* alt u 0x17 23* alt i
0x18 24* alt o 0x19 25* alt p 0x1a 26 alt [
0x1b 27 alt ] 0x1c 28 alt ret 0x1e 30* alt a
0x1f 31* alt s 0x20 32* alt d 0x21 33* alt f
0x22 34* alt g 0x23 35* alt h 0x24 36* alt j
0x25 37* alt k 0x26 38* alt l 0x27 39 alt ;
0x28 40 alt ' 0x29 41 alt ` 0x2b 43 alt #
0x2c 44* alt z 0x2d 45* alt x 0x2e 46* alt c
0x2f 47* alt v 0x30 48* alt b 0x31 49* alt n
0x32 50* alt m 0x33 51 alt , 0x34 52 alt .
0x35 53 alt / 0x37 55 alt pad * 0x3b 59 f1
0x3c 60 f2 0x3d 61 f3 0x3e 62 f4
0x3f 63 f5 0x40 64 f6 0x41 65 f7
0x42 66 f8 0x43 67 f9 0x44 68 f10
0x47 71* home 0x48 72* uparrow 0x49 73* page-up
0x4a 74 alt pad - 0x4b 75* leftarrow 0x4c 76 pad5
0x4d 77* rightarrow 0x4e 78 alt pad + 0x4f 79* end
0x50 80* downarrow 0x51 81* page-down 0x52 82* insert
0x53 83* delete 0x54 84 shift f1 0x55 85 shift f2
0x56 86 shift f3 0x57 87 shift f4 0x58 88 shift f5
0x59 89 shift f6 0x5a 90 shift f7 0x5b 91 shift f8
0x5c 92 shift f9 0x5d 93 shift f10 0x5e 94 ctrl f1
0x5f 95 ctrl f2 0x60 96 ctrl f3 0x61 97 ctrl f4
0x62 98 ctrl f5 0x63 99 ctrl f6 0x64 100 ctrl f7
0x65 101 ctrl f8 0x66 102 ctrl f9 0x67 103 ctrl f10
0x68 104 alt f1 0x69 105 alt f2 0x6a 106 alt f3
0x6b 107 alt f4 0x6c 108 alt f5 0x6d 109 alt f6
0x6e 110 alt f7 0x6f 111 alt f8 0x70 112 alt f9
0x71 113 alt f10 0x73 115 ctrl leftarrow 0x74 116 ctrl rightarrow
0x75 117 ctrl end 0x76 118 ctrl page-down 0x77 119 ctrl home
0x78 120* alt 1 0x79 121* alt 2 0x7a 122* alt 3
0x7b 123* alt 4 0x7c 124* alt 5 0x7d 125* alt 6
0x7e 126* alt 7 0x7f 127* alt 8 0x80 128* alt 9
0x81 129* alt 0 0x82 130 alt - 0x83 131 alt =
0x84 132 ctrl page-up 0x85 133 f11 0x86 134 f12
0x87 135 shift f11 0x88 136 shift f12 0x89 137 ctrl f11
0x8a 138 ctrl f12 0x8b 139 alt f11 0x8c 140 alt f12
0x8d 141 ctrl uparrow 0x8e 142 ctrl pad - 0x8f 143 ctrl pad5
0x90 144 ctrl pad + 0x91 145 ctrl downarrow 0x92 146 ctrl insert
0x93 147 ctrl delete 0x94 148 ctrl tab 0x95 149 ctrl pad /
0x96 150 ctrl pad * 0x97 151* alt home 0x98 152* alt uparrow
0x99 153 alt page-up 0x9b 155* alt leftarrow 0x9d 157* alt rightarrow
0x9f 159* alt end 0xa0 160* alt downarrow 0xa1 161 alt page-down
0xa2 162* alt insert 0xa3 163* alt delete 0xa4 164 alt pad /
0xa5 165 alt tab
Those marked '*' are bound to subroutines as AAEMACS default. Your PC must
accept them, and must return the same input codes for them as in this list.
'Pad' means the right keypad. 'Pad5' means the key in the middle of the right
keypad which in numlock mode produces '5'.
--------------------------------------------------------------------------------
If you must alter the source form, do not auto-coerce a 'subr*' to a 'val'
with Gnu C, as the result's 'val.n' will be not _subr but _buffer. This is
probably due to a stray gremlin in Gnu C. Use the function 'kf()' to convert a
'subr*' to a 'val'.